The development and application of rule engines is one branch of Artificial Intelligence (A.I.), which is a research area that focuses on “making computers think like people.” Broadly speaking, a rule engine processes information by applying rules to data objects (also known as facts). Various types of rule engines have been developed to evaluate and process rules. One conventional type of rule engine is a Rete rule engine. A Rete rule engine implements a Rete network to process rules and data objects. An object is compared against each of the rules in a rule set to determine whether the object satisfies all of the constraints of any of the rules. An object that satisfies all of the constraints associated with a rule may then be modified based on an action associated with that rule.
For a conventional Rete rule engine, if an object is modified by the Rete rule engine, that object is then again compared against all of the rules in the rule set. This often results in a loop, in which objects are modified, then matched against the rule set, then modified, again matched against the rule set, and so on. Such repeated matching against all of the rules in the rule set can be processor intensive and time consuming. Additionally, such repeated matching may cause infinite loops in some instances.